home *** CD-ROM | disk | FTP | other *** search
- /* $Id: COMCamC.h 1.1 1996/07/18 23:52:42 Damien Exp $ */
-
- // Copyright (c) 1995, Ray Dream, Inc. All rights reserved.
-
- //
- // COM Example of a Conical Camera
- //
-
- #ifndef __COMCAMC__
- #define __COMCAMC__
-
- #ifndef __I3DEXCAM__
- #include "I3DExCam.h"
- #endif
-
- // ConicCamera GUID :
- // 520F6AA0-725F-101C-B801-04021C007002
- DEFINE_GUID(CLSID_ConicCamera, 0x520F6AA0L, 0x725F, 0x101C, 0xB8, 0x01, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
-
-
- typedef struct CameraData {
- short fZoomCoef;
- } CameraData;
-
-
- // Conical Camera Object :
- #undef INTERFACE
- #define INTERFACE ConicCamera
- class ConicCamera : public I3DExCamera {
- public :
- ConicCamera();
- ~ConicCamera();
-
- // IUnknown Interface :
- STDMETHODIMP QueryInterface(THIS_ REFIID riid, LPVOID FAR* ppvObj);
- STDMETHODIMP_(ULONG) AddRef(THIS);
- STDMETHODIMP_(ULONG) Release(THIS);
-
- // I3DExtension method :
- STDMETHODIMP_(I3DExtension*) Clone(THIS);
- STDMETHODIMP ShellUtilitiesInit(THIS_ IShUtilities* shellUtilities);
-
- // I3DExDataExchanger methods :
- STDMETHODIMP_(ExtensionDataMap*) GetExtensionDataMap(THIS);
- STDMETHODIMP_(void*) GetExtensionDataBuffer(THIS);
- STDMETHODIMP ExtensionDataChanged(THIS);
- STDMETHODIMP HandleEvent(THIS_ ULONG sourceID);
- STDMETHODIMP_(short) GetResID(THIS);
-
- // I3DExCamera methods
- STDMETHODIMP SetTransform(THIS_ TRANSFORM3D* transform);
- STDMETHODIMP_(BOOLEAN) CreateRay(THIS_ VECTOR2D* screenPosition, VECTOR3D* resultOrigin, VECTOR3D* resultDirection);
- STDMETHODIMP_(BOOLEAN) Project3DTo2D(THIS_ VECTOR3D* position,VECTOR2D* resultScreenPosition, NUM3D* resultDistanceToScreen);
- STDMETHODIMP_(ULONG) GetPrimitiveID(THIS);
- STDMETHODIMP_(ULONG) Clip3D(THIS_ FACET3D* localFacet, VERTEX3D* localVertices,
- FACET3D* cameraFacet, VERTEX3D* cameraVertices,
- NUM3D* clipBox);
- STDMETHODIMP_(BOOLEAN) ClipLine3D(THIS_ VECTOR3D* P1, VECTOR3D* P2);
- private :
- TRANSFORM3D fTransform; // Transformation Data (Local to Global and Global to Local)
- ULONG fCRef; // reference Counter
- CameraData fData; // Camera Data Zoom and Angle
- NUM3D fCoef; // Preprocessed Coefficient factor
- NUM3D fQuickZoom; // QuickFix values of Zoom in the Camera Data
- };
-
- #endif // __COMCONIC__
-